/**
 *
 * node   11之前:宏任务和微任务 11之后:没有区别
 * 浏览器
 *
 */
// node eventLoop 提供的宏任务
setImmediate(() => {
  console.log(7);
});

// node eventLoop提供的微任务
process.nextTick(() => {
  console.log(6);
});

new Promise((resolve, reject) => {
  console.log(1);
  setTimeout(() => {
    resolve(5);
  }, 0)
}).then(console.log);

console.log(2);

setTimeout(() => {
  console.log(3);
}, 0);

console.log(4);
// 1 2 4 5 3
